package com.hs.srm.admin.modules.bills.entity;

import java.io.Serializable;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import cn.afterturn.easypoi.excel.annotation.Excel;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import com.fasterxml.jackson.annotation.JsonFormat;

/*
 * 对账表
 */
@Setter
@Getter
@TableName("scm_bills")
@ToString
public class ScmBillsEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    public ScmBillsEntity() {
        super();
    }

    /*
     * 流水id
     */
    @TableId(value = "pk_id", type = IdType.UUID)
    @TableField("pk_id")
    @Excel(name = "流水id", orderNum = "1")
    private java.lang.String pkId;

    /*
     * 对账单号
     */
    @TableField("bill_no")
    @Excel(name = "对账单号", orderNum = "2")
    private java.lang.String billNo;

    /*
     * 收货表id
     */
    @TableField("stock_id")
    @Excel(name = "收货表id", orderNum = "2")
    private java.lang.String stockId;

    @TableField(exist = false)
    private String deliverNo;

    /*
     * 订单号
     */
    @TableField("po_no")
    @Excel(name = "订单号", orderNum = "3")
    private java.lang.String poNo;

    /*
     * 订单行项目号
     */
    @TableField("item_no")
    @Excel(name = "订单行项目号", orderNum = "4")
    private java.lang.String itemNo;

    /*
     * 物料编码
     */
    @TableField("material_code")
    @Excel(name = "物料编码", orderNum = "5")
    private java.lang.String materialCode;

    /*
     * 物料描述
     */
    @TableField("material_desc")
    @Excel(name = "物料描述", orderNum = "6")
    private java.lang.String materialDesc;

    /*
     * 工厂
     */
    @TableField("factory")
    @Excel(name = "工厂", orderNum = "7")
    private java.lang.String factory;

    /*
     * 物料组
     */
    @TableField("material_group")
    @Excel(name = "物料组", orderNum = "8")
    private java.lang.String materialGroup;

    /*
     * 需求者姓名
     */
    @TableField("requester")
    @Excel(name = "需求者姓名", orderNum = "9")
    private java.lang.String requester;

    /*
     * 采购订单数量
     */
    @TableField("po_count")
    @Excel(name = "采购订单数量", orderNum = "10")
    private java.math.BigDecimal poCount;

    /*
     * 收货数量
     */
    @TableField("shipped_qty")
    @Excel(name = "收货数量", orderNum = "7")
    private java.math.BigDecimal shippedQty;

    /*
     * 采购订单计量单位
     */
    @TableField("po_unit")
    @Excel(name = "采购订单计量单位", orderNum = "11")
    private java.lang.String poUnit;

    /*
     * 含税单价
     */
    @TableField("po_price")
    @Excel(name = "含税单价", orderNum = "12")
    private java.math.BigDecimal poPrice;

    /*
     * 价格单位
     */
    @TableField("price_unit")
    @Excel(name = "价格单位", orderNum = "13")
    private java.lang.String priceUnit;

    /*
     * 税码
     */
    @TableField("tax_code")
    @Excel(name = "税码", orderNum = "14")
    private java.lang.String taxCode;

    /*
     * 订单总价值
     */
    @TableField("totalPrice")
    @Excel(name = "订单总价值", orderNum = "15")
    private java.math.BigDecimal totalPrice;

    /*
     * 订单总税额
     */
    @TableField(exist = false)
    private java.math.BigDecimal taxMoney;

    /*
     * 收货日期
     */
    @TableField("receipt_date")
    @Excel(name = "收货日期", orderNum = "16")
    @JSONField(format = "yyyy-MM-dd")
    private java.util.Date receiptDate;

    /*
     * 成本中心
     */
    @TableField("cost_center")
    @Excel(name = "成本中心", orderNum = "17")
    private java.lang.String costCenter;

    /*
     * 订单类型
     */
    @TableField("po_type")
    @Excel(name = "订单类型", orderNum = "18")
    private java.lang.String poType;

    /*
     * 1已收货.2收货失败
     */
    @TableField("receipted_flag")
    @Excel(name = "1已收货.2收货失败", orderNum = "19")
    private java.lang.Integer receiptedFlag;

    /*
     * 供应商编码
     */
    @TableField("vendor_code")
    @Excel(name = "供应商编码", orderNum = "20")
    private java.lang.String vendorCode;

    /*
     * 公司代码
     */
    @TableField("company_code")
    @Excel(name = "公司代码", orderNum = "21")
    private java.lang.String companyCode;

    /*
     * 采购组
     */
    @TableField("purch_group")
    @Excel(name = "采购组", orderNum = "22")
    private java.lang.String purchGroup;

    /*
     * 采购组织
     */
    @TableField("purch_org")
    @Excel(name = "采购组织", orderNum = "23")
    private java.lang.String purchOrg;

    /*
     * 付款条件代码
     */
    @TableField("pay_condition")
    @Excel(name = "付款条件代码", orderNum = "24")
    private java.lang.String payCondition;

    /*
     * 货币码
     */
    @TableField("currency_code")
    @Excel(name = "货币码", orderNum = "25")
    private java.lang.String currencyCode;

    /*
     * 供应商名称
     */
    @TableField("vendor_name")
    @Excel(name = "供应商名称", orderNum = "26")
    private java.lang.String vendorName;

    /*
     * 供应商建议交期
     */
    @TableField("suggest_date")
    @Excel(name = "供应商建议交期", orderNum = "27")
    @JSONField(format = "yyyy-MM-dd")
    private java.util.Date suggestDate;

    /*
     * 对账单状态（未操作0，第一次通过1，第二次通过2，第三次通过3；第一次未通过-1，第二次未通过-2，第三次未通过-3）
     */
    @TableField("bill_status")
    @Excel(name = "对账单状态", orderNum = "28")
    private int billStatus;

    /*
     * 开票状态（0未开票；1已开票未审批；2开票审批通过；-2开票审批未通过）
     */
    @TableField("invoice_status")
    @Excel(name = "开票状态", orderNum = "28")
    private int invoiceStatus;

    /*
     * 记录创建人
     */
    @TableField("create_people")
    @Excel(name = "记录创建人", orderNum = "29")
    private java.lang.String createPeople;

    /*
     * 记录更新人
     */
    @TableField("update_people")
    @Excel(name = "记录更新人", orderNum = "30")
    private java.lang.String updatePeople;

    /*
     * 创建时间
     */
    @TableField("create_time")
    @Excel(name = "创建时间", orderNum = "31")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private java.util.Date createTime;

    /*
     * 更新时间
     */
    @TableField("update_time")
    @Excel(name = "更新时间", orderNum = "32")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private java.util.Date updateTime;

    @TableField(exist = false)
    @JSONField(format = "yyyy-MM-dd")
    private java.util.Date stockTime;

    @TableField(exist = false)
    private java.lang.String creationDate;

    @TableField(exist = false)
    private java.lang.String createdBy;

    @TableField(exist = false)
    private java.lang.String poId;
}
